f1c95fe5dd657332f8383fd3ea62729d9e78fcd5,engine/src/test/java/org/camunda/bpm/engine/test/api/runtime/migration/MigrationBoundaryEventsParameterizedTest.java,MigrationBoundaryEventsParameterizedTest,testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent,#,474

Before Change


  @Test
  public void testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent() {
    // given
    BpmnEventTrigger bpmnEventTrigger = configuration.addBoundaryEvent(ProcessModels.PARALLEL_GATEWAY_PROCESS, USER_TASK_1_ID);
    BpmnModelInstance sourceProcess = bpmnEventTrigger.getProcessModel();
    BpmnModelInstance targetProcess = modify(sourceProcess).changeElementId(BOUNDARY_ID, NEW_BOUNDARY_ID);

    ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess);
    ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess);

    Map<String, String> activities = new HashMap<String, String>();
    activities.put(USER_TASK_1_ID, USER_TASK_1_ID);
    activities.put(BOUNDARY_ID, NEW_BOUNDARY_ID);
    activities.put(USER_TASK_2_ID, USER_TASK_2_ID);
    MigrationPlan migrationPlan = configuration.createMigrationPlanBuilder(rule, sourceProcessDefinition.getId(),
      targetProcessDefinition.getId(), activities).build();

    // when
    testHelper.createProcessInstanceAndMigrate(migrationPlan);

    // then it is possible to trigger the event and successfully complete the migrated instance
    bpmnEventTrigger.trigger(testHelper);
    testHelper.completeTask(AFTER_BOUNDARY_TASK);
    testHelper.completeTask(USER_TASK_2_ID);
    testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.getProcessInstanceId());

After Change


  @Test
  public void testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent() {
    // given
    BpmnModelInstance sourceProcess = ProcessModels.PARALLEL_GATEWAY_PROCESS.clone();
    MigratingBpmnEventTrigger eventTrigger = eventFactory.addBoundaryEvent(
        rule.getProcessEngine(),
        sourceProcess,
        USER_TASK_1_ID,
        BOUNDARY_ID);
    ModifiableBpmnModelInstance.wrap(sourceProcess).flowNodeBuilder(BOUNDARY_ID)
      .userTask(AFTER_BOUNDARY_TASK)
      .endEvent()
      .done();

    BpmnModelInstance targetProcess = modify(sourceProcess)
        .changeElementId("boundary", "newBoundary");

    ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess);
    ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess);


    MigrationPlan migrationPlan = rule.getRuntimeService().createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId())
        .mapActivities(USER_TASK_1_ID, USER_TASK_1_ID)
        .mapActivities(USER_TASK_2_ID, USER_TASK_2_ID)
        .mapActivities(BOUNDARY_ID, NEW_BOUNDARY_ID).updateEventTrigger()
        .build();

    // when
    ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan);

    // then it is possible to trigger the event and successfully complete the migrated instance
    eventTrigger.inContextOf(NEW_BOUNDARY_ID).trigger(processInstance.getId());
    testHelper.completeTask(AFTER_BOUNDARY_TASK);
    testHelper.completeTask(USER_TASK_2_ID);
    testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.getProcessInstanceId());